package com.cqjtu.education.service;

import com.cqjtu.education.entity.User;
import com.cqjtu.education.utils.Result;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.concurrent.ExecutionException;

/**
 * (User)表服务接口
 *
 * @author makejava
 * @since 2022-04-07 13:57:18
 */
public interface UserService {

    void sendSms(String tel, String code) throws ExecutionException, InterruptedException;

    String uploadUserImage(String id, MultipartFile file);

    Result importData(MultipartFile file) throws Exception;

    User queryByTel(String tel);

    /**
     * 通过ID查询单条数据
     *
     * @param key 主键
     * @return 实例对象
     */
    List<User> fuzzyQuery(String key, int pageNum, int pageSize);

    User queryById(String id);


    /**
     * 新增数据
     *
     * @param user 实例对象
     * @return 实例对象
     */
    User insert(User user);

    /**
     * 修改数据
     *
     * @param user 实例对象
     * @return 实例对象
     */
    User update(User user);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(String id);

    int register(User user);

    int countByKey(String key);

    /**
     * 判断该手机号是否注册过
     *
     * @param tel
     * @return true/false
     */
    boolean isRegister(String tel);

    User login(String username, String password);

    User changePassword(String id, String password);

    List<User> getAllUsers(int pageNum, int pageSize);
}
